package com.hope.hotel.entity.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import lombok.Data;

import java.util.List;

/**
 * 酒店政策信息实体类
 */
@Data
@TableName(value = "hotel_policy", autoResultMap = true)
public class Policy {
    
    /**
     * ID
     */
    @TableId
    private String id;
    
    /**
     * 酒店ID
     */
    private String hotelId;
    
    /**
     * 入住时间 (HH:mm格式)
     */
    private String checkInTime;
    
    /**
     * 退房时间 (HH:mm格式)
     */
    private String checkOutTime;
    
    /**
     * 最早预订时间（天数）
     */
    private Integer minAdvanceReservation;
    
    /**
     * 最晚预订时间（天数）
     */
    private Integer maxAdvanceReservation;
    
    /**
     * 免费取消时间（小时）
     */
    private Integer freeCancellationHours;
    
    /**
     * 取消费用百分比
     */
    private Integer cancellationFeePercent;
    
    /**
     * 支付方式列表，JSON格式存储
     * credit-信用卡, debit-借记卡, cash-现金, alipay-支付宝, wechat-微信支付
     */
    @TableField(typeHandler = JacksonTypeHandler.class)
    private List<String> paymentMethods;
    
    /**
     * 是否需要预付款
     */
    private Boolean prepaymentRequired;
    
    /**
     * 预付比例
     */
    private Integer prepaymentPercent;
    
    /**
     * 是否允许携带宠物
     */
    private Boolean petsAllowed;
    
    /**
     * 宠物费用
     */
    private Double petFee;
    
    /**
     * 是否允许儿童入住
     */
    private Boolean childrenAllowed;
    
    /**
     * 儿童年龄阈值
     */
    private Integer childAgeThreshold;
    
    /**
     * 是否允许加床
     */
    private Boolean extraBedAllowed;
    
    /**
     * 加床费用
     */
    private Double extraBedFee;
} 